prolog './g310t.ijs'
NB. 13 : y ---------------------------------------------------------------

ar=: 5!:1

eq=: 4 : 0
 0!:100 'f9=.',x
 g9 =. 13 : y
 assert. 'f9' -:&ar&< 'g9'
 1
)

eq1=: 4 : 0
 x eq y
 assert. (3 : y -: 13 : y) 123
 1
)

eq2=: 4 : 0
 x eq y
 assert. 456 (4 : y -: 13 : y) 123
 1
)

eq12=: 4 : 0
 x eq y
 assert.     (3 : y -: 13 : y) 123
 assert. 456 (4 : y -: 13 : y) 123
 1
)

eqx=: 3 : 0
 f9=. (3+(<,'x')e.;:y) : y
 g9=. 13 : y
 assert. 'f9' -:&ar&< 'g9'
 1
)


NB. 13 : y constants -----------------------------------------------------

'0"_'       eq12 '0'
'1"_'       eq12 '1'
'1:'        eq12 '2-1'
'1x"_'      eq12 '1x'
'1r2"_'     eq12 '1r2'
'3:'        eq12 '2+1'
'_3:'       eq12 '1-4'
'11"_'      eq12 '10+1'
'(i.2 3)"_' eq12 'i.2 3'
'''a''"_'   eq12 '''a'''
'''abc''"_' eq12 '''abc'''


NB. 13 : y monads --------------------------------------------------------

'*:'                   eq1 '*:y'
'#'                    eq1 '#y'
'[: *: >:'             eq1 '*: >: y'
'[: +: [: -: [: *: %:' eq1 '+: -: *: %: y'
'[: i. #'              eq1 'i. # y'
'<: * >:'              eq1 '(<:y)*>:y'
'+/ % #'               eq1 '(+/y)%#y'
'* # ]'                eq1 '(*y)#y'
'] #~ 0 < ]'           eq1 '(0<y)#y'
'2   ^~ ]'             eq1 'y^2'
'_1  ^~ ]'             eq1 'y^_1'
'12  ^~ ]'             eq1 'y^12'
'0.5 ^~ ]'             eq1 'y^0.5'
'2  ^. ]'              eq1 '2^.y'
'10 ^. ]'              eq1 '10^.y'
'3 + 4 * ]'            eq1 '3 + 4 * y'
'7 * ]'                eq1 '(3+4)*y'
'_10 ]\ ":'            eq1 '_10 ]\ ": y'
'+/ % #'               eq1 '(13 : ''(+/y)%#y'') y'

'2= ]'                 eq1 'y= 2'
'2<.]'                 eq1 'y<.2'
'2>.]'                 eq1 'y>.2'
'2+ ]'                 eq1 'y+ 2'
'2+.]'                 eq1 'y+.2'
'1+:]'                 eq  'y+:1'
'2* ]'                 eq1 'y* 2'
'2*.]'                 eq1 'y*.2'
'1*:]'                 eq  'y*:1'
'2-:]'                 eq1 'y-:2'
'2~:]'                 eq1 'y~:2'

'2< ]'                 eq1 'y> 2'
'2<:]'                 eq1 'y>:2'
'2> ]'                 eq1 'y< 2'
'2>:]'                 eq1 'y<:2'

'+~'                   eq1 'y+ y'
'<~'                   eq1 'y< y'

'(200$''3'') {~ ]'     eq1 'y{a' [ a=: 200$'3'


NB. 13 : y dyads ---------------------------------------------------------

'*'                    eq2 'x*y'
','                    eq2 'x,y'
'+ * -'                eq2 '(x+y)*(x-y)'
'3 + 4 * >.'           eq2 '3 + 4 * x>.y'

'/:~'                  eq1 'y/:y'
'/:~'                  eq2 'y/:x'
'[ /: ['               eq2 'x/:x'


NB. 13 : y can not translate ---------------------------------------------

eqx '+:^:y y'
eqx '+:^:x y'
eqx '(y * *:)y'
eqx '(x * *:)y'
eqx 'd*d=:y'
eqx 'x>.d*d=:y'
eqx '3+y=.y+2'
eqx '3+x=.x+2'


NB. 13 : y local defns ---------------------------------------------------

'0  <  20 -~ ]'                 eq1 '0<t  [ t=. y - 20'
'30 ^~ 20 -~ ]'                 eq1 't^30 [ t=. y - 20'
'2  ^  10 -~ ]'                 eq1 '2^ t [ t=. y - 10'
'2  ^  10 -  ]'                 eq1 '2^ t [ t=. 10 - y'

'[:             -:  7-~]'       eq1 '   -:t [ t=. y-7'
'[: ([:      *: -:) 7-~]'       eq1 ' *:-:t [ t=. y-7'
'[: ([: ^ [: *: -:) 7-~]'       eq1 '^*:-:t [ t=. y-7'

'              4 +    12-~]'    eq1 '    4+t=.y-12'
'[: (    [: *: 4 + ]) 12-~]'    eq1 '  *:4+t=.y-12'
'        [: *:        12-~]'    eq1 '  *:  t=.y-12'
'[: (6 -    *:      ) 12-~]'    eq1 '6-*:  t=.y-12'
'[: (6 - [: *: 4 + ]) 12-~]'    eq1 '6-*:4+t=.y-12'

'[: ([:    *: -:) -:'           eq1 '*:-:  t=. -:y'
'[: ((7<  ]) # ]) -:'           eq1 '(7<t)#t=. -:y'
'[: ((7< ]) # ]) -:'            eq1 '(t>7)#t=. -:y'

'[: (%:    - *: ) 12-~]'        eq1 '(%:t) - *: t=. y-12'
'[: (%:    - 1<]) 12-~]'        eq1 '(%:t) - 1< t=. y-12'
'[: ((0<]) - *: ) 12-~]'        eq1 '(0<t) - *: t=. y-12'
'[: ((0<]) - 1<]) 12-~]'        eq1 '(t>0) - 1< t=. y-12'

'*: + -:'                       eq1 's+t [ s=. *:y  [ t=. -:y'
'(] + #) + #'                   eq1 '(s+t) [ s=.y+t[t=.#y'

'+         =      -'            eq2 ' s   =   t [ s=. x+y [ t=. x-y'
'+ (     [ =2 %]) -'            eq2 ' s   = 2%t [ s=. x+y [ t=. x-y'
'+ (     [ =[:%]) -'            eq2 ' s   =  %t [ s=. x+y [ t=. x-y'
'+ (     [ =  % ) -'            eq2 ' s   = s%t [ s=. x+y [ t=. x-y'
'+ ((3*  [)=   ]) -'            eq2 '(s*3)=   t [ s=. x+y [ t=. x-y'
'+ ((3*  [)=2 %]) -'            eq2 '(s*3)= 2%t [ s=. x+y [ t=. x-y'
'+ ((3*  [)=[:%]) -'            eq2 '(s*3)=  %t [ s=. x+y [ t=. x-y'
'+ ((3*  [)=  % ) -'            eq2 '(s*3)= s%t [ s=. x+y [ t=. x-y'
'+ (([:*:[)=   ]) -'            eq2 '(*:s)=   t [ s=. x+y [ t=. x-y'
'+ (([:*:[)=2 %]) -'            eq2 '(*:s)= 2%t [ s=. x+y [ t=. x-y'
'+ (([:*:[)=[:%]) -'            eq2 '(*:s)=  %t [ s=. x+y [ t=. x-y'
'+ (([:*:[)=  % ) -'            eq2 '(*:s)= s%t [ s=. x+y [ t=. x-y'

'+ (([:*:[)=  % ) -'            eq2 '(*:s)= s%t [ s=. x+y [ t=. x-y'
'+ (([:*:])=  % ) -'            eq2 '(*:t)= s%t [ s=. x+y [ t=. x-y'
'- (([:*:])=  % ) +'            eq2 '(*:s)= t%s [ s=. x+y [ t=. x-y'

'+ (*=   ]) -'                  eq2 '(s*t)=   t [ s=. x+y [ t=. x-y'
'+ (*=2 %]) -'                  eq2 '(s*t)= 2%t [ s=. x+y [ t=. x-y'
'+ (*=[:%]) -'                  eq2 '(s*t)=  %t [ s=. x+y [ t=. x-y'
'+ (*=  % ) -'                  eq2 '(s*t)= s%t [ s=. x+y [ t=. x-y'
'+ (*=  % ) -'                  eq2 '(t*s)= s%t [ s=. x+y [ t=. x-y'
'- (%=  * ) +'                  eq2 '(t%s)= s*t [ s=. x+y [ t=. x-y'

'(20-~])         *      +'      eq2 '   s *   t [ s=. y-20 [ t=. x+y'
'(20-~]) ([      *12-]) +'      eq2 '   s *12-t [ s=. y-20 [ t=. x+y'
'(20-~]) (([:*:[)*   ]) +'      eq2 '(*:s)*   t [ s=. y-20 [ t=. x+y'
'(20-~]) (([:*:[)*12-]) +'      eq2 '(*:s)*12-t [ s=. y-20 [ t=. x+y'

'9:'                                         eq 't=.9'
'99"_'                                       eq 't=. 99'
'_99 ". ]'                                   eq '(t=._99)".y'
'[: {: _99 (0,[~:".) ]'                      eq '{:0,nn~:(nn=._99)". y'
'3 + 4 * ]'                                  eq '3+4*y'
'13 + 14 * ]'                                eq '13+14*y'
'''ABC'' {~ ''abc'' i. ]'                    eq '(''abc'' i. y){''ABC'''
'+'                                          eq 'y+x' 
'7 + ]'                                      eq 'y+7'
'+ - *'                                      eq '(x+y)-(y*x)'
'17 < ]'                                     eq 'y>17'
'% * [: -: +'                                eq '(-:x+y)*x%y'
'3 + *:'                                     eq '3+t [ t=. *:y'
'[: ((0 < ]) # ]) expensive'                 eq '(t>0)#t=. expensive y'
'* (<. - >.) %'                              eq '(s<.t)-s>.t [ s=. x*y [ t=. x%y'
'[: ((''d'' = 4 {"1 [: > 4 {"1 ]) # ]) 1!:0' eq '(''d''=4{"1 >4{"1 t)#t=. 1!:0 y'

isnum=: 13 : '{:0,nn~:(nn=._99)".y'
'[: {: (_99) (0 , [ ~: ".) ]' -: 5!:5 <'isnum'
0 = isnum 'abc'
1 = isnum '1.234e7'

isnum=: 13 : '{:0,nn~:(nn=._1)".y'
'[: {: (_1) (0 , [ ~: ".) ]' -: 5!:5 <'isnum'
0 = isnum 'abc'
1 = isnum '1.234e7'

NB. the following used to corrupt memory
ar=: 13 : ' ''There are '',(":#  y ),'' Mutation_States on this plate.'''	
ar=: 13 : ' ''There are '',(":#  y ),'' Mutation_States on this plate.'''	
ar=: 13 : ' ''There are '',(":#  y ),'' Mutation_States on this plate.'''	
ar=: 13 : ' ''There are '',(":#  y ),'' Mutation_States on this plate.'''	





epilog''

